///////////////////////////////////////////////////////////////////////////////
// File:        Ini.hpp
// Author:      671643387@qq.com
// Description: 
///////////////////////////////////////////////////////////////////////////////

#if !defined(SHARED_INI_HPP_)
#define SHARED_INI_HPP_

#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif

#include <string>
#include <boost/noncopyable.hpp>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/ini_parser.hpp>

///////////////////////////////////////////////////////////////////////////////
class Ini : public boost::noncopyable
{
public:
    ///////////////////////////////////////////////////////////////////////////
    Ini(void);
    Ini(std::string file);

public:
    ///////////////////////////////////////////////////////////////////////////
    void Open(std::string file);

    template<typename T>
    T Get(std::string name)
    {
        return file_.get<T>(name);
    }

private:
    ///////////////////////////////////////////////////////////////////////////
    boost::property_tree::ptree file_;
};

#endif //SHARED_INI_HPP_
